Speech coder using an orthogonal search and an orthogonal search method

ABSTRACT

Speech is coded using an orthogonal search by calculating a search reference value. An adaptive codevector representing a pitch component is generated. A random codevector representing a random component is also generated. The orthogonal search further includes generating a synthetic speech signal by a synthesis filter being excited by the adaptive codevector and the random codevector. A distortion between the input speech signal and the synthetic speech signal is calculated. One random codevector that minimizes the distortion is selected.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.11/125,184, filed May 10, 2005, which is a continuation of U.S.application Ser. No. 10/133,735, filed Apr. 29, 2002, which is now U.S.Pat. No. 7,024,356, issued Apr. 4, 2006, which is a continuation of U.S.application Ser. No. 09/319,933, filed Jun. 18, 1999, which is now U.S.Pat. No. 6,415,254, issued Jul. 2, 2002, which is the National Stage ofInternational Application No. PCT/JP98/04777, filed Oct. 22, 1998, thecontents of which are expressly incorporated by reference herein intheir entirety. The International Application was not published underPCT 21 (2) in English.

TECHNICAL FIELD

The present invention relates to a speech coder for efficiently codingspeech information and a speech decoder for efficiently decoding thesame.

BACKGROUND ART

A speech coding technique for efficiently coding and decoding speechinformation has been developed in recent years. In Code Excited LinearPrediction: “High Quality Speech at Low Bit Rate”, M. R. Schroeder,Proc. ICASSP'85, pp. 937-940, there is described a speech coder of aCELP type, which is on the basis of such a speech coding technique.

In this speech coder, a linear prediction for an input speech is carriedout in every frame, which is divided at a fixed time. A predictionresidual (excitation signal) is obtained by the linear prediction foreach frame. Then, the prediction residual is coded using an adaptivecodebook in which a previous excitation signal is stored and a randomcodebook in which a plurality of random codevectors is stored.

FIG. 1 shows a functional block of a conventional CELP type speechcoder.

A speech signal 11 input to the CELP type speech coder is subjected to alinear prediction analysis in a linear prediction analyzing section 12.A linear predictive coefficients can be obtained by the linearprediction analysis. The linear predictive coefficients are parametersindicating a spectrum envelop of the speech signal 11. The linearpredictive coefficients obtained in the linear prediction analyzingsection 12 are quantized by a linear predictive coefficient codingsection 13, and the quantized linear predictive coefficients are sent toa linear predictive coefficient decoding section 14. Note that an indexobtained by this quantization is output to a code outputting section 24as a linear predictive code. The linear predictive coefficient decodingsection 14 decodes the linear predictive coefficients quantized by thelinear predictive coefficient coding section 13 so as to obtaincoefficients of a synthesis filter. The linear predictive coefficientdecoding section 14 outputs these coefficients to a synthesis filter 15.

An adaptive codebook 17 is one, which outputs a plurality of candidatesof adaptive codevectors, and which comprises a buffer for storingexcitation signals corresponding to previous several frames. Theadaptive codevectors are time series vectors, which express periodiccomponents in the input speech.

A random codebook 18 is one, which stores a plurality of candidates ofrandom codevectors. The random codevectors are time series vectors,which express non-periodic components in the input speech.

In an adaptive code gain weighting section 19 and a random code gainweighting section 20, the candidate vectors output from the adaptivecodebook 17 and the random codebook 18 are multiplied by an adaptivecode gain read from a weight codebook 21 and a random code gain,respectively, and the resultants are output to an adding section 22.

The weighting codebook stores a plurality of adaptive codebook gains bywhich the adaptive codevector is multiplied and a plurality of randomcodebook gains by which the random codevectors are multiplied.

The adding section 22 adds the adaptive codevector candidates and therandom codevector candidates, which are weighted in the adaptive codegain weighting section 19 and the random code gain weighting section 20,respectively. Then, the adding section 22 generates excitation vectorsso as to be output to the synthesis filter 15.

The synthesis filter 15 is an all-pole filter. The coefficients of thesynthesis filter are obtained by the linear predictive coefficientdecoding section 14. The synthesis filter 15 has a function ofsynthesizing input excitation vector in order to produce syntheticspeech and outputting that synthetic speech to a distortion calculator16.

A distortion calculator 16 calculates a distortion between the syntheticspeech, which is the output of the synthesis filter 15, and the inputspeech 11, and outputs the obtained distortion value to a code indexspecifying section 23. The code index specifying section 23 specifiesthree kinds of codebook indices (index of adaptive codebook, index ofrandom codebook, index of weight codebook) so as to minimize thedistortion calculated by the distortion calculation section 16. Thethree kinds of codebook indices specified by the code index specifyingsection 23 are output to a code outputting section 24. The codeoutputting section 24 outputs the index of linear predictive codebookobtained by the linear predictive coefficient coding section 13 and theindex of adaptive codebook, the index of random code, the index ofweight codebook, which have been specified by the code index specifyingsection 23, to a transmission path at one time.

FIG. 2 shows a functional block of a CELP speech decoder, which decodesthe speech signal coded by the aforementioned coder. In this speechdecoder apparatus, a code input section 31 receives codes sent from thespeech coder (FIG. 1). The received codes are disassembled into theindex of the linear predictive codebook, the index of adaptive codebook,the index of random codebook, and the index of weight codebook. Then,the indices obtained by the above disassemble are output to a linearpredictive coefficient decoding section 32, an adaptive codebook 33, arandom codebook 34, and a weight codebook 35, respectively.

Next, the linear predictive coefficient decoding section 32 decodes thelinear predictive code number obtained by the code input section 31 soas to obtain coefficients of the synthesis filter, and outputs thosecoefficients to a synthesis filter 39. Then, an adaptive codevectorcorresponding to the index of adaptive codebook is read from adaptivecodebook, and a random codevector corresponding to the index of randomcodebook is read from the random codebook. Moreover, an adaptivecodebook gain and a-random codebook gain corresponding to the index ofweight codebook are read from the weight codebook. Then, in an adaptivecodevector weighting section 36, the adaptive codevector is multipliedby the adaptive codebook gain, and the resultant is sent to an addingsection 38. Similarly, in a random codevector weighting section 37, therandom codevector is multiplied by the random codebook gain, and theresultant is sent to the adding section 38.

The adding section 38 adds the above two codevectors and generates anexcitation vector. Then, the generated excitation vector is sent to theadaptive codebook 33 to update the buffer or the synthesis filter 39 toexcite the filter. The synthesis filter 39, composed with the linearpredictive coefficients which are output from linear predictivecoefficient decoding section 32, is excited by the excitation vectorobtained by the adding section 38, and reproduces a synthetic speech.

Note that, in the distortion calculator 16 of the CELP speech coder,distortion E is generally calculated by the following expression (1):E=∥v−(gaHP+gcHC∥ ²  (1)

where v: an input speech signal (vector),

H: an impulse response convolution matrix for a synthesis filter

$H = \begin{bmatrix}{h(0)} & 0 & \ldots & \ldots & 0 & 0 \\{h(1)} & {h(0)} & 0 & \ldots & 0 & 0 \\{h(2)} & {h(1)} & {h(0)} & 0 & 0 & 0 \\\vdots & \vdots & \vdots & \ddots & 0 & 0 \\\vdots & \vdots & \vdots & \ddots & {h(0)} & 0 \\{h\left( {L - 1} \right)} & \ldots & \ldots & \ldots & {h(1)} & {h(0)}\end{bmatrix}$

wherein h is an impulse response of a synthesis filter, L is a framelength,

p: an adaptive codevector,

c: a random codevector,

ga: an adaptive codebook gain, and

gc: a random codebook gain.

Here, in order to minimize distortion E of expression (1), thedistortion is calculated by a closed loop with respective to allcombinations of the adaptive code number, the random code number, theweight code number, it is necessary to specify each code number.

However, if the closed loop search is performed with respect toexpression (1), an amount of calculation processing becomes too large.For this reason, generally, first of all, the index of adaptive codebookis specified by vector quantization using the adaptive codebook. Next,the index of random codebook is specified by vector quantization usingthe random codebook. Finally, the index of weight codebook is specifiedby vector quantization using the weight codebook. Here, the followingwill specifically explain the vector quantization processing using therandom codebook.

In a case where the index of adaptive codebook or the adaptive codebookgain are previously or temporarily determined, the expression forevaluating distortion shown in expression (1) is changed to thefollowing expression (2):Ec=∥x−gcHC∥ ²  (2)

where vector x in expression (2) is random excitation target vector forspecifying a random code number which is obtained by the followingequation (3) using the previously or temporarily specified adaptivecodevector and adaptive codebook gain.x=v−gaHP ²  (3)

where ga: an adaptive codebook gain,

v: a speech signal (vector),

H: an impulse response convolution matrix for a synthesis filter,

p: an adaptive codevector.

For specifying the random codebook gain gc after specifying the index ofrandom codebook, it can be assumed that gc in the expression (2) can beset to an arbitrary value. For this reason, it is known that aquantization processing for specifying the index of the random codebookminimizing the expression (2) can be replaced with the determination ofthe index of the random codebook vector maximizing the followingfractional expression (4):

$\begin{matrix}\frac{\left( {x^{t}{Hc}} \right)^{2}}{{{Hc}}^{2}} & (4)\end{matrix}$

In other words, in a case where the index of adaptive codebook and theadaptive codebook gain are previously or temporarily determined, vectorquantization processing for random excitation becomes processing forspecifying the index of the random codebook maximizing fractionalexpression (4) calculated by the distortion calculator 16.

In the CELP coder/decoder in the early stages, one that stores kinds ofrandom sequences corresponding to the number of bits allocated in thememory was used as a random codebook. However, there was a problem inwhich a massive amount of memory capacity was required and the amount ofcalculation processing for calculating distortion of expression (4) withrespect to each random codevector was greatly increased.

As one of methods for solving the above problem, there is a CELP speechcoder/decoder using an algebraic excitation vector generator forgenerating an excitation vector algebraically as described in “8 KBIT/SACELP CODING OF SPEECH WITH 10 MS SPEECH-FRAME: A CANDIDATE FOR CCITTSTANDARDIZATION”: R. Salami, C. Laflamme, J-P. Adoul, ICASSP'94, pp.II-97˜II-100, 1994.

However, in the above CELP speech coder/decoder using an algebraicexcitation vector generator, random excitation (target vector forspecifying an index of random codebook) obtained by equation (3) isapproximately expressed by a few signed pulses. For this reason, thereis a limitation in improvement of speech quality. This is obvious froman actual investigation of an element for random excitation x ofexpression (3) wherein there are few cases in which random excitationsare composed only of a few signed pulses.

DISCLOSURE OF INVENTION

An object of the present invention is to provide an excitation vectorgenerator, which is capable of generating an excitation vector whoseshape has a statistically high similarity to the shape of a randomexcitation obtained by analyzing an input speech signal.

Also, an object of the present invention is to provide a CELP speechcoder/decoder, a speech signal communication system, a speech signalrecording system, which use the above excitation vector generator as arandom codebook so as to obtain a synthetic speech having a higherquality than that of the case in which an algebraic excitation vectorgenerator is used as a random codebook.

A first aspect of the present invention is to provide an excitationvector generator comprising a pulse vector generating section having Nchannels (N≧1) for generating pulse vectors each having a signed unitpulse provided to one element on a vector axis, a storing and selectingsection having a function of storing M (M≧1) kinds of dispersionpatterns every channel and a function of selecting a certain kind ofdispersion pattern from M kinds of dispersion patterns stored, a pulsevector dispersion section having a function of convolving the dispersionpattern selected from the dispersion pattern storing and selectingsection to the signed pulse vector output from the pulse vectorgenerator so as to generator N dispersed vectors, and a dispersed vectoradding section having a function of adding N dispersed vectors generatedby the pulse vector dispersion section so as to generate an excitationvector. The function for algebraically generating (N≧1) pulse vectors isprovided to the pulse vector generator, and the dispersion patternstoring and selecting section stores the dispersion patterns obtained bypre-training the shape (characteristic) of the actual vector, wherebymaking it possible to generate the excitation vector, which is wellsimilar to the shape of the actual excitation vector as compared withthe conventional algebraic excitation generator.

Moreover, the second aspect of the present invention is to provide aCELP speech coder/decoder using the above excitation vector generator asthe random codebook, which is capable of generating the excitationvector being closer to the actual shape than the case of theconventional speech coder/decoder using the algebraic excitationgenerator as the random codebook. Therefore, there can be obtained thespeech coder/decoder, speech signal communication system, and speechsignal recording system, which can output the synthetic speech having ahigher quality.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a functional block diagram of a conventional CELP speechcoder;

FIG. 2 is a functional block diagram of a conventional CELP speechdecoder;

FIG. 3 is a functional block diagram of an excitation vector generatoraccording to a first embodiment of the present invention;

FIG. 4 is a functional block diagram of a CELP speech coder according toa second embodiment of the present invention;

FIG. 5 is a functional block diagram of a CELP speech decoder accordingto the second embodiment of the present invention;

FIG. 6 is a functional block diagram of a CELP speech coder according toa third embodiment of the present invention;

FIG. 7 is a functional block diagram of a CELP speech coder according toa fourth embodiment of the present invention;

FIG. 8 is a functional block diagram of a CELP speech coder according toa fifth embodiment of the present invention;

FIG. 9 is a functional block diagram of a vector quantization functionaccording to the fifth embodiment of the present invention;

FIG. 10 is a view explaining an algorithm for a target extractionaccording to the fifth embodiment of the present invention;

FIG. 11 is a functional block diagram of a predictive quantizationaccording to the fifth embodiment of the present invention;

FIG. 12 is a functional block diagram of a predictive quantizationaccording to a sixth embodiment of the present invention;

FIG. 13 is a functional block diagram of a CELP speech coder accordingto a seventh embodiment of the present invention; and

FIG. 14 is a functional block diagram of a distortion calculatoraccording to the seventh embodiment of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

Embodiments will now be described with reference to the accompanyingdrawings.

First Embodiment

FIG. 3 is a functional block diagram of an excitation vector generatoraccording to a first embodiment of the present invention.

The excitation vector generator comprises a pulse vector generator 101having a plurality of channels, a dispersion pattern storing andselecting section 102 having dispersion pattern storing sections andswitches, a pulse vector dispersion section 103 for dispersing the pulsevectors, and a dispersed vector adding section 104 for adding thedispersed pulse vectors for the plurality of channels.

The pulse vector generator 101 comprises N (a case of N=3 will beexplained in this embodiment) channels for generating vectors(hereinafter referred to as pulse vectors) each having a signed unitpulse with provided to one element on a vector axis.

The dispersion pattern storing and selecting section 102 comprisesstoring sections M1 to M3 for storing M (a case of M=2 will be explainedin this embodiment) kinds of dispersion patterns for each channel andswitches SW1 to SW2 for selecting one kind of dispersion pattern from Mkinds of dispersion patterns stored in the respective storing sectionsM1 to M3.

The pulse vector dispersion section 103 performs convolution of thepulse vectors output from the pulse vector generator 101 and thedispersion patterns output from the dispersion pattern storing andselecting section 102 in every channel so as to generate N dispersedvectors.

The dispersed vector adding section 104 adds up N dispersed vectorsgenerated by the pulse vector dispersion section 103, thereby generatingan excitation vector 105.

Note that, in this embodiment, a case in which the pulse vectorgenerator 101 algebraically generates N (N=3) pulse vectors inaccordance with the rule described in Table 1 set forth below will beexplained.

TABLE 1 Channel Number Polarity Pulse Position Candidates CH1 ±1 P¹(0,10, 20, 30, . . . , 60, 70) CH2 ±1 $P^{2}\begin{bmatrix}{2,} & {12,} & {22,} & {32,} & {\ldots,} & {62,} & 72 \\{6,} & {16,} & {26,} & {36,} & {\ldots,} & {66,} & 76\end{bmatrix}$ CH3 ±1 $P^{3}\begin{bmatrix}{4,} & {14,} & {24,} & {34,} & {\ldots,} & {64,} & 74 \\{8,} & {18,} & {28,} & {38,} & {\ldots,} & {68,} & 78\end{bmatrix}$

An operation of the above-structured excitation vector generator will beexplained.

The dispersion pattern storing and selecting section 102 selects adispersion pattern by one kind by one from dispersion patterns storedtwo kinds by two for each channel, and outputs the dispersion pattern.In this case, the number is allocated to each dispersion pattern inaccordance with the combinations of selected dispersion patterns (totalnumber of combinations: M^(N)=8).

Next, the pulse vector generator 101 algebraically generates the signedpulse vectors corresponding to the number of channels (three in thisembodiment) in accordance with the rule described in Table 1.

The pulse vector dispersion section 103 generates a dispersed vector foreach channel by convolving the dispersion patterns selected by thedispersion pattern storing and selecting section 102 with the signedpulses generated by the pulse vector generator 101 based on thefollowing expression (5):

$\begin{matrix}{{{ci}(n)} = {\sum\limits_{k = 0}^{L - 1}{{{wij}\left( {n - k} \right)}{{di}(k)}}}} & (5)\end{matrix}$

where n: 0˜L−1,

L: dispersion vector length,

i: channel number (i=1˜N),

j: dispersion pattern number (j=1˜M),

ci: dispersed vector for channel i,

wij: dispersed pattern for channel i, j wherein the vector length ofwij(m) is 2L−1 (m: −(L−1)˜L−1), and it is the element, Lij, that canspecify the value and the other elements are zero,

di: signed pulse vector for channel i,

di=±δ(n−pi), n=0˜L−1, and

pi: pulse position candidate for channel i.

The dispersed vector adding section 104 adds up three dispersed vectorsgenerated by the pulse vector dispersion section 103 by the followingequation (6) so as to generate the excitation vector 105.

$\begin{matrix}{{c(n)} = {\sum\limits_{i = 1}^{N}{{ci}(n)}}} & (6)\end{matrix}$

where c: excitation vector,

ci: dispersed vector,

i: channel number (i=1˜N), and

n: vector element number (n=0˜L−1: note that L is an excitation vectorlength).

The above-structured excitation vector generator can generate variousexcitation vectors by adding variations to the combinations of thedispersion patterns, which the dispersion pattern storing and selectingsection 102 selects, and the pulse position and polarity in the pulsevector, which the pulse vector generator 101 generates.

Then, in the above-structured excitation vector generator, it ispossible to allocate bits to two kinds of information having thecombinations of dispersion patterns selected by the dispersion patternstoring and selecting section 102 and the combinations of the shapes(the pulse positions and polarities) generated by the pulse vectorgenerator 101. The indices of this excitation vector generator are in aone-to-one correspondence with two kinds of information. Also, atraining processing is executed based on actual excitation informationin advance and the dispersion patterns obtainable as the training resultcan be stored in the dispersion pattern storing and selecting section102.

Moreover, the above excitation vector generator is used as theexcitation information generator of speech coder/decoder to transmit twokinds of indices including the combination index of dispersion patternsselected by the dispersion pattern storing and selecting section 102 andthe combination index of the configuration (the pulse positions andpolarities) generated by the pulse vector generator 101, thereby makingit possible to transmit information on random excitation.

Also, the use of the above-structured excitation vector generator allowsthe configuration (characteristic) similar to actual excitationinformation to be generated as compared with the use of algebraiccodebook.

The above embodiment explained the case in which the dispersion patternstoring and selecting section 102 stored two kinds of dispersionpatterns per one channel. However, the similar function and effect canbe obtained in a case in which the dispersion patterns other than twokinds are allocated to each channel.

Also, the above embodiment explained the case in which the pulse vectorgenerator 101 was based on the three-channel structure and the pulsegeneration rule described in Table 1. However, the similar function andeffect can be obtained in a case in which the number of channels isdifferent and a case in which the pulse generation rule other than Table1 is used as a pulse generation rule.

A speech signal communication system or a speech signal recording systemhaving the above excitation vector generator or the speech coder/decoderis structured, thereby obtaining the functions and effects which theabove excitation vector generator has.

Second Embodiment

FIG. 4 shows a functional block of a CELP speech coder according to thesecond embodiment, and FIG. 5 shows a functional block of a CELP speechdecoder.

The CELP speech coder according to this embodiment applies theexcitation vector generator explained in the first embodiment to therandom codebook of the CELP speech coder of FIG. 1. Also, the CELPspeech decoder according, to this embodiment applies the excitationvector generator explained in the first embodiment to the randomcodebook of the CELP speech decoder of FIG. 2. Therefore, processingother than vector quantization processing for random excitation is thesame as that of the apparatuses of FIGS. 1 and 2. This embodiment willexplain the speech coder and the speech decoder with particular emphasison vector quantization processing for random excitation. Also, similarto the first embodiment, the generation of pulse vectors are based onTable 1 wherein the number of channels N=3 and the number of dispersionpatterns for one channel M=2.

The vector quantization processing for random excitation in the speechcoder illustrated in FIG. 4 is one that specifies two kinds of indices(combination index for dispersion patterns and combination index forpulse positions and pulse polarities) so as to maximize reference valuesin expression (4).

In a case where the excitation vector generator illustrated in FIG. 3 isused as a random codebook, combination index for dispersion patterns(eight kinds) and combination index for pulse vectors (case consideringthe polarity: 16384 kinds) are searched by a closed loop.

For this reason, a dispersion pattern storing and selecting section 215selects either of two kinds of dispersion patterns stored in thedispersion pattern storing and selecting section itself, and outputs theselected dispersion pattern to a pulse vector dispersion section 217.Thereafter, a pulse vector generator 216 algebraically generates pulsevectors corresponding to the number of channels (three in thisembodiment) in accordance with the rule described in Table 1, andoutputs the generated pulse vectors to the pulse vector dispersionsection 217.

The pulse vector dispersion section 217 generates a dispersed vector foreach channel by a convolution calculation. The convolution calculationis performed on the basis of the expression (5) using the dispersionpatterns selected by the dispersion pattern storing and selectingsection 215 and the signed pulses generated by the pulse vectorgenerator 216.

A dispersion vector adding section 218 adds up the dispersed vectorsobtained by the pulse vector dispersion section 217, thereby generatingexcitation vectors (candidates for random codevectors).

Then, a distortion calculator 206 calculates evaluation values accordingto the expression (4) using the random codevector candidate obtained bythe dispersed vector adding section 218. The calculation on the basis ofthe expression (4) is carried out with respect to all combinations ofthe pulse vectors generated based on the rule of Table 1. Then, amongthe calculated values, the combination index for dispersion patterns andthe combination index for pulse vectors (combination of the pulsepositions and the polarities), which are obtained when the evaluationvalue by the expression (4) becomes maximum and the maximum value areoutput to a code number specifying section 213.

Next, the dispersion pattern storing and selecting section 215 selectsthe combination for dispersion patterns which is different from thepreviously selected combination for the dispersion patterns. Regardingthe combination for dispersion patterns newly selected, the calculationof the value of expression (4) is carried out with respect to allcombinations of the pulse vectors generated by the pulse vectorgenerator 216 based on the rule of Table 1. Then, among the calculatedvalues, the combination index for dispersion patterns and thecombination index for pulse vectors, which are obtained when the valueof expression (4) becomes maximum and the maximum value are output tothe code indices specifying section 213 again.

The above processing is repeated with respect to all combinations (totalnumber of combinations is eight in this embodiment) selectable from thedispersion patterns stored in the dispersion pattern storing andselecting section 215.

The code indices specifying section 213 compares eight maximum values intotal calculated by the distortion calculator 206, and selects thehighest value of all. Then, the code indices specifying section 213specifies two kinds of combination indices (combination index fordispersion patterns, combination index for pulse vectors), which areobtained when the highest value is generated, and outputs the specifiedcombination indices to a code outputting section 214 as an index ofrandom codebook.

On the other hand, in the speech decoder of FIG. 5, a code inputtingsection 301 receives codes transmitted from the speech coder (FIG. 4),decomposes the received codes into the corresponding index of LPCcodebook, the index of adaptive codebook, the index of random codebook(composed of two kinds of the combination index for dispersion patternsand combination index for pulse vectors) and the index of weightcodebook. Then, the code inputting section 301 outputs the decomposedindices to a linear prediction coefficient decoder 302, an adaptivecodebook, a random codebook 304, and a weight codebook 305. Note that,in the random code number, that the combination index for dispersionpatterns is output to a dispersion pattern storing and storing section311 and the combination index for pulse vectors is output to a pulsevector generator 312.

Then, the linear prediction coefficient decoder 302 decodes the linearpredictive code number, obtains the coefficients for a synthesis filter309, and outputs the obtained coefficients to the synthesis filter 309.In the adaptive codebook 303, an adaptive codevector corresponding tothe index of adaptive codebook is read from.

In the random codebook 304, the dispersion pattern storing and selectingsection 311 reads the dispersion patterns corresponding to thecombination index for dispersion pulses in every channel, and outputsthe resultant to a pulse vector dispersion section 313. The pulse vectorgenerator 312 generates the pulse vectors corresponding to thecombination index for pulse vectors and corresponding to the number ofchannels, and outputs the resultant to the pulse vector dispersionsection 313. The pulse vector dispersion section 313 generates adispersed vector for each channel by convolving the dispersion patternsreceived from the dispersion pattern storing and selecting section 311on the singed pulses received from the pulse vector generator 312. Then,the generated dispersed vectors are output to a dispersion vector addingsection 314. The dispersion vector adding section 314 adds up thedispersed vectors of the respective channels generated by the pulsevector dispersion section 313, thereby generating a random codevector.

Then, an adaptive codebook gain and a random codebook gain correspondingto the index of weight codebook are read from the weight codebook 305.Then, in an adaptive codevector weighting section 306, the adaptivecodevector is multiplied by the adaptive codebook gain. Similarly in arandom codevector weighting section 307, the random codevector ismultiplied by the random codebook gain. Then, these resultants areoutput to an adding section 308.

The adding section 308 adds up the above two codevectors multiplied bythe gains so as to generate an excitation vector. Then, the addingsection 308 outputs the generated excitation vector to the adaptivecodebook 303 to update a buffer or to the synthesis filter 309 to excitethe synthesis filter.

The synthesis filter 309 is excited by the excitation vector obtained bythe adding section 308, and reproduces a synthetic speech 310. Also, theadaptive codebook 303 updates the buffer by the excitation vectorreceived from the adding section 308.

In this case, suppose that the dispersion patterns obtained bypre-training are stored for each channel in the dispersion patternstoring and selecting section of FIGS. 4 and 5 such that a value of costfunction becomes smaller wherein the cost function is a distortionevaluation expression (7) in which the excitation vector described inexpression (6) is substituted into c of expression (2).

$\begin{matrix}\begin{matrix}{{Ec} = {{x - {{gcH}{\sum\limits_{i = 1}^{N}{ci}}}}}^{2}} \\{= {\sum\limits_{n = 0}^{L - 1}\left( {{x(n)} - {{gcH}{\sum\limits_{i = 1}^{N}{{ci}(n)}}}} \right)^{2}}} \\{= {\sum\limits_{n = 0}^{L - 1}\left( {{x(n)} - {{gcH}{\sum\limits_{i = 1}^{N}{\sum\limits_{k = 0}^{L - 1}{{{wij}\left( {n - k} \right)}{{di}(k)}}}}}} \right)^{2}}}\end{matrix} & (7)\end{matrix}$

where x: target vector for specifying index of random codebook,

gc: random codebook gain,

H: impulse response convolution matrix for synthesis filter,

c: random codevector,

i: channel number (i=1˜N),

j: dispersion pattern number (j=1˜M),

ci: dispersion vector for channel i,

wij: dispersion patterns for channels i-th, j-th kinds,

di: pulse vector for channel i, and

L: excitation vector length (n=0˜L−1).

The above embodiment explained the case in which the dispersion patternsobtained by pre-training were stored M by M for each channel in thedispersion pattern storing and selecting section such that the value ofcost function expression (7) becomes smaller.

However, in actual, all M dispersion patterns do not have to be obtainedby training. If at least one kind of dispersion pattern obtained bytraining is stored, it is possible to obtain the functions and effectsto improve the quality of the synthesized speech.

Also, the above embodiment explained that case in which from allcombinations of dispersion patterns stored in the dispersion patternstoring and selecting section stores and all combinations of pulsevector position candidates generated by the pulse vector generator, thecombination index that maximized the reference value of expression (4)was specified by the closed loop. However, the similar functions andeffects can be obtained by carrying out a pre-selection based on otherparameters (ideal gain for adaptive codevector, etc.) obtained beforespecifying the index of the random codebook or by a open loop search.

Moreover, a speech signal communication system or a speech signalrecording system having the above the speech coder/decoder isstructured, thereby obtaining the functions and effects which theexcitation vector generator described in the first embodiment has.

Third Embodiment

FIG. 6 is a functional block of a CELP speech coder according to thethird embodiment. According to this embodiment, in the CELP speech coderusing the excitation vector generator of the first embodiment in therandom codebook, a pre-selection for dispersion patterns stored in thedispersion pattern storing and selecting section is carried out usingthe value of an ideal adaptive codebook gain obtained before searchingthe index of random codebook. The other portions of the random codebookperipherals are the same as those of the CELP speech coder of FIG. 4.Therefore, this embodiment will explain the vector quantizationprocessing for random excitation in the CELP speech coder of FIG. 6.

This CELP speech coder comprises an adaptive codebook 407, an adaptivecodebook gain weighting section 409, a random codebook 408 constitutedby the excitation vector generator explained in the first embodiment, arandom codebook gain weighting section 410, a synthesis filter 405, adistortion calculator 406, an indices specifying section 413, adispersion pattern storing and selecting section 415, a pulse vectorgenerator 416, a pulse vector dispersion section 417, a dispersed vectoradding section 418, and a distortion power judging in section 419.

In this case, according to the above embodiment, suppose that at leastone of M (M=2) kinds of dispersion patterns stored in the dispersionpattern storing and selecting section 415 is the dispersion pattern thatis obtained from the result by performing a pre-training to reducequantization distortion generated in vector quantization processing forrandom excitation.

In this embodiment, for simplifying the explanation, it is assumed thatthe number N of channels of the pulse vector generator is 3, and thenumber M of kinds of dispersion patterns for each channel stored in thedispersion pattern storing and selecting section is 2. Also, supposethat one of M (M=2) kinds of dispersion patterns is dispersion patternobtained by the above-mentioned training, and other is random vectorsequence (hereinafter referred to as random pattern) which is generatedby a random vector generator. Additionally, it is known that thedispersion pattern obtained by the above training has a relatively shortlength and a pulse-like shape as in w11 of FIG. 3.

In the CELP speech coder of FIG. 6, processing for specifying the indexof the adaptive codebook before vector quantization of random excitationis carried out. Therefore, at the time when vector quantizationprocessing of random excitation is carried out, it is possible to referto the index of the adaptive codebook and the ideal adaptive codebookgain (temporarily decided). In this embodiment, the pre-selection fordispersion patterns is carried out using the value of the ideal adaptivecodebook gain.

More specifically, first, the ideal value of the adaptive codebook gainstored in the code indices specifying section 413 just after the searchfor the index of adaptive codebook is output to the distortioncalculator 406. The distortion calculator 406 outputs the adaptivecodebook gain received from the code indices specifying section 413 tothe adaptive codebook gain judging section 419.

The adaptive gain judging section 419 performs a comparison between thevalue of the ideal adaptive codebook gain received from the distortioncalculator 409 and a preset threshold value. Next, the adaptive codebookgain judging section 419 sends a control signal for a pre-selection tothe dispersion pattern storing and selecting section 415 based on theresult of the comparison. The contents of the control signal will beexplained as follows.

More specifically, when the adaptive codebook gain is larger than thethreshold value as a result of the comparison, the control signalprovides an instruction to select the dispersion pattern obtained by thepre-training to reduce the quantization distortion in vectorquantization processing for random excitations. Also, when the adaptivecode gain is not larger than the threshold value as a result of thecomparison, the control signal provides an instruction to carry out thepre-selection for the dispersion pattern different from the dispersionpattern obtained from the result of the pre-training.

As a consequence, in the dispersion pattern storing and selectingselection 415, the dispersion pattern of M (M=2) kinds, which therespective channels store, can be pre-selected in accordance with thevalue of the ideal adaptive codebook gain, so that the number ofcombinations of dispersion patterns can be largely reduced. Thiseliminates the need of the distortion calculation for all thecombinations of the dispersion patterns, and makes it possible toefficiently perform the vector quantization processing for randomexcitation with a small amount of calculations.

Moreover, the random codevector is pulse-like shaped when the value ofthe adaptive gain is large (this segment is determined as voiced) and israndomly shaped when the value of the adaptive gain is small (thissegment is determined as unvoiced). Therefore, since the randomcodevector having a suitable shape for each of the voice segment thespeech signal and the non-voice segment can be used, the quality of thesynthesized speech can be improved.

Due to the simplification of the explanation, this embodiment explainedlimitedly the case in which the number N of channels of the pulse vectorgenerator was 3 and the number M of kinds of the dispersion patterns was2 per channel stored in the dispersion pattern storing and selectingsection. However, similar effects and functions can be obtained in acase in which the number of channels of the pulse vector generator andthe number of kinds of the dispersion patterns per channel stored in thedispersion pattern storing and selecting section are different from theaforementioned case.

Also, due to the simplification of the explanation, the above embodimentexplained the case in which one of M kinds (M=2) of dispersion patternsstored in each channel was dispersion patterns obtained by the abovetraining and the other was random patterns. However, if at least onekind of dispersion pattern obtained by the training is stored for eachchannel, the similar effects and functions can be expected instead ofthe above-explained case.

Moreover, this embodiment explained the case in which large and smallinformation of the adaptive codebook gain was used in means forperforming pre-selection of the dispersion patterns. However, if otherparameters showing a short-time character of the input speech are usedin addition to large and small information of the adaptive codebookgain, the similar effects and functions can be further expected.

Further, a speech signal communication system or a speech signalrecording system having the above the speech coder/decoder isstructured, thereby obtaining the functions and effects which theexcitation vector generator described in the first embodiment has.

In the explanation of the above embodiment, there was explained themethod in which the pre-selection of the dispersion pattern was carriedout using the ideal adaptive codebook gain of the current frame at thetime when vector quantization processing of random excitation wasperformed. However, the similar structure can be employed even in a casein which a decoded adaptive codebook gain obtained in the previous frameis used instead of the ideal adaptive codebook gain in the currentframe. In this case, the similar effects can be also obtained.

Fourth Embodiment

FIG. 7 is a functional block diagram of a CELP speech coder according tothe fourth embodiment. In this embodiment, in the CELP speech coderusing the excitation vector generator of the first embodiment in therandom codebook, a pre-selection for a plurality of dispersion patternsstored in the dispersion pattern storing and selecting section iscarried out using available information at the time of vectorquantization processing for random excitations. It is characterized thata value of a coding distortion (expressed by an S/N ratio) that isgenerated in specifying the index of the adaptive codebook, is used as areference of the pre-selection.

Note that the other portions of the random codebook peripherals are thesame as those of the CELP speech coder of FIG. 4. Therefore, thisembodiment will specifically explain the vector quantization processingfor random excitation.

As shown in FIG. 7, this CELP speech coder comprises an adaptivecodebook 507, an adaptive codebook gain weighting section 509, a randomcodebook 508 constituted by the excitation vector generator explained inthe first embodiment, a random codebook gain weighting section 510, asynthesis filter 505, a distortion calculator 506, a code indicesspecifying section 513, a dispersion pattern storing and selectingsection 515, a pulse vector generator 516, a pulse vector dispersionsection 517, a dispersed vector adding section 518, and a codingdistortion judging section 519.

In this case, according to the above embodiment, suppose that at leastone of M (M≧2) kinds of dispersion patterns stored in the dispersionpattern storing and selecting section 515 is the random pattern.

In the above embodiment, for simplifying the explanation, the number Nof channels of the pulse vector generator is 3 and the number M of kindsof the dispersion patterns is 2 per channel stored in the dispersionpattern storing and selecting section. Moreover, one of M (M=2) kinds ofdispersion patterns is the random pattern, and the other is thedispersion pattern that is obtained as the result of pre-training toreduce quantization distortion generated in vector quantizationprocessing for random excitations.

In the CELP speech coder of FIG. 7, processing for specifying the indexof the adaptive codebook is performed before vector quantizationprocessing for random excitation. Therefore, at the time when vectorquantization processing of random excitation is carried out, it ispossible to refer to the index of the adaptive codebook, the idealadaptive codebook gain (temporarily decided), and the target vector forsearching the adaptive codebook. In this embodiment, the pre-selectionfor dispersion patterns is carried out using the coding distortion(expressed by S/N ratio) of the adaptive codebook which can becalculated from the above three information.

More specifically, the index of adaptive codebook and the value of theadaptive codebook gain (ideal gain) stored in the code indicesspecifying section 513 just after the search for the adaptive codebookis output to the distortion calculator 506. The distortion calculator506 calculates the coding distortion (S/N ratio) generated by specifyingthe index of the adaptive codebook using the index of adaptive codebookreceived from the code indices specifying section 513, the adaptivecodebook gain, and the target vector for searching the adaptivecodebook. Then, the distortion calculator 506 outputs the calculated S/Nvalue to the coding distortion judging section 519.

The coding distortion judging section 519 performs a comparison betweenthe S/N value received from the distortion calculator 506 and a presetthreshold value. Next, the coding distortion judging section 519 sends acontrol signal for a pre-selection to the dispersion pattern storing andselecting section 515 based on the result of the comparison. Thecontents of the control signal will be explained as follows.

More specifically, when the S/N value is larger than the threshold valueas a result of the comparison, the control signal provides aninstruction to select the dispersion pattern obtained by thepre-training to reduce the quantization distortion generated by codingthe target vector for searching the random codebook. Also, when the S/Nvalue is smaller than the threshold value as a result of the comparison,the control signal provides an instruction to select the non-pulse-likerandom patterns.

As a consequence, in the dispersion pattern storing and selectingselection 515, only one kind is pre-selected from M (M=2) kinds ofdispersion patterns, which the respective channels store, so that thenumber of combinations of dispersion patterns can be largely reduced.This eliminates the need of the distortion calculation for all thecombinations of the dispersion patterns, and makes it possible toefficiently specify the index of the random codebook with a small amountof calculations.

Moreover, the random codevector is pulse-like shaped when the S/N valueis large, and is non-pulse-like shaped when the S/N value is small.Therefore, since the shape of the random codevector can be changed inaccordance with the short-time characteristic of the speech signal, thequality of the synthetic speech can be improved.

Due to the simplification of the explanation, this embodiment explainedlimitedly the case in which the number N of channels of the pulse vectorgenerator was 3 and the number M of kinds of the dispersion patterns was2 per channel stored in the dispersion pattern storing and selectingsection. However, similar effects and functions can be obtained in acase in which the number of channels of the pulse vector generator andthe number of kinds of the dispersion patterns per channel stored in thedispersion pattern storing and selecting section are different from theaforementioned case.

Also, due to the simplification of the explanation, the above embodimentexplained the case in which one of M kinds (M=2) of dispersion patternsstored in each channel was dispersion patterns obtained by the abovepre-training and the other was random patterns. However, if at least onekind of random dispersion pattern is stored for each channel, thesimilar effects and functions can be expected instead of theabove-explained case.

Moreover, this embodiment explained the case in which only large andsmall information of coding distortion (expressed by S/N value)generated by specifying the index of the adaptive codebook was used inmeans for pre-selecting the dispersion pattern. However, if otherinformation, which correctly shows the short-time characteristic of thespeech signal, is employed in addition thereto, the similar effects andfunctions can be further expected.

Further, a speech signal communication system or a speech signalrecording system having the above the speech coder/decoder isstructured, thereby obtaining the functions and effects which theexcitation vector generator described in the first embodiment has.

Fifth Embodiment

FIG. 8 shows a functional block of a CELP speech coder according to thefifth embodiment of the present invention. According to this CELP speechcoder, in an LPC analyzing section 600 performs a auto-correlationanalysis and an LPC analysis of input speech data 601, thereby obtainingLPC coefficients. Also, the obtained LPC coefficients are quantized soas to obtain the index of LPC codebook, and the obtained index isdecoded so as to obtain decoded LPC coefficients.

Next, an excitation generator 602 takes out excitation samples stored inan adaptive codebook 603 and a random codebook 604 (an adaptivecodevector (or adaptive excitation) and random codevector (or a randomexcitation)) and sends them to an LPC synthesizing section 605.

The LPC synthesizing section 605 filters two excitations obtained by theexcitation generator 602 by the decoded LPC coefficient obtained by theLPC analyzing section 600, thereby obtaining two synthesizedexcitations.

In a comparator 606, the relationship between two synthesizedexcitations obtained by the LPC synthesizing section 605 and the inputspeech 601 is analyzed so as to obtain an optimum value (optimum gain)of two synthesized excitations. Then, the respective synthesizedexcitations, which are power controlled by the optimum value, are addedso as to obtain an integrated synthesized speech, and a distancecalculation between the integrated synthesized speech and the inputspeech is carried out.

The distance calculation between each of many integrated synthesizedspeeches, which are obtained by exciting the excitation generator 602and the LPC synthesizing section 605, and the input speech 601 iscarried out with respect to all excitation samples of the adaptivecodebook 603 and the random codebook 604. Then, an index of theexcitation sample, which is obtained when the value is the smallest inthe distances obtainable from the result, is determined.

Also, the obtained optimum gain, the index of the excitation sample, andtwo excitations responding to the index are sent to a parameter codingsection 607. In the parameter coding section 607, the optimum gain iscoded so as to obtain a gain code, and the index of LPC codebook and theindex of the excitation sample are sent to a transmission path 608 atone time.

Moreover, an actual excitation signal is generated from two excitationsresponding to the gain code and the index, and the generated excitationsignal is stored in the adaptive codebook 603 and the old excitationsample is abandoned at the same time.

Note that, in the LPC synthesizing section 605, a perceptual weightingfilter using the linear predictive coefficients, a high-frequencyenhancement filter, a long-term predictive filter, (obtained by carryingout a long-term prediction analysis of input speech) are generallyemployed. Also, the excitation search for the adaptive codebook and therandom codebook is generally carried out in segments (referred to assubframes) into which an analysis segment is further divided.

The following will explain the vector quantization for LPC coefficientsin the LPC analyzing section 600 according to this embodiment.

FIG. 9 shows a functional block for realizing a vector quantizationalgorithm to be executed in the LPC analyzing section 600. The vectorquantization block shown in FIG. 9 comprises a target extracting section702, a quantizing section 703, a distortion calculator 704, a comparator705, a decoding vector storing section 707, and a vector smoothingsection 708.

In the target extracting section 702, a quantization target iscalculated based on an input vector 701. Here, a target extractingmethod will be specifically explained.

In this embodiment, the input “vector” comprises two kinds of vectors inall wherein one is a parameter vector obtained by analyzing a currentframe and the other is a parameter vector obtained from a future framein a like manner. The target extracting section 702 calculates aquantization target using the above input vector and a decoded vector ofthe previous frame stored in the decoded vector storing section 707. Anexample of the calculation method will be shown by the followingexpression (8).X(i)={S _(t)(i)+p(d(i)+S _(t+1)(i)/2}/(1+p)  (8)

where X(i): target vector,

i: vector element number,

S_(t)(i), S_(t+1)(i): input vector,

t: time (frame number),

p: weighting coefficient (fixed), and

d(i): decoded vector of previous frame.

The following will show a concept of the above target extraction method.In a typical vector quantization, parameter vector S_(t) (i) is used astarget X(i) and a matching is performed by the following expression (9):

$\begin{matrix}{{En} = {\sum\limits_{i = 0}^{i}\left( {{X(i)} - {{Cn}(i)}} \right)^{2}}} & (9)\end{matrix}$

where En: distance from n-th codevector,

X(i): target vector,

Cn(i): codevector,

n: codevector number,

i: order of vector, and

I: length of vector.

Therefore, in the conventional vector quantization, the codingdistortion directly leads to degradation in speech quality. This was abig problem in the ultra-low bit rate coding in which the codingdistortion cannot be avoided to some extent even if measurements such asprediction vector quantization is taken.

For this reason, according to this embodiment, attention should be paidto a middle point of the decoded vector as a direction where the userdoes not perceptually feel an error easily, and the decoded vector isinduced to the middle point so as to realize perceptual improvement. Inthe above case, there is used a characteristic in which time continuityis not easily heard as a perceptual degradation.

The following will explain the above state with reference to FIG. 10showing a vector space.

First of all, it is assumed that the decoded vector of one previousframe is d(i) and a future parameter vector is S.sub.t+1 (i) (although afuture coded vector is actually desirable, the future parameter vectoris used for the future coded vector since the coding cannot be carriedout in the current frame. In this case, although the codevector Cn(i):(1) is closer to the parameter vector St(i) than the codevector Cn(i):(2), the codevector Cn(i): (2) is actually close onto a line connectingd(i) and S_(t+1) (i). For this reason, degradation is not easily heardas compared with (1). Therefore, by use of the above characteristic, ifthe target X(i) is set as a vector placed at the position where thetarget X(i) approaches to the middle point between d(i) and S_(t+1) (i)from St(i) to some degree, the decoded vector is induced to a directionwhere the amount of distortion is perceptually slight.

Then, according to this embodiment, the movement of the target can berealized by introducing the following evaluation expression (10)X(i)={S _(t)(i)+p(d(i)+S _(t+1)(i))/2}/(1+p)  (10)

where X(i): target vector,

i: vector element number,

S_(t)(i), S_(t+1)(i): input vector,

t: time (frame number),

p: weighting coefficient (fixed), and

d(i): decoded vector of previous frame.

The first half of expression (10) is a general evaluation expression,and the second half is a perceptual component. In order to carry out thequantization by the above evaluation expression, the evaluationexpression, is differentiated with respect to each X(i) and thedifferentiated result is set to 0, so that expression (8) can beobtained.

Note that the weighting coefficient p is a positive constant.Specifically, when the weighting coefficient p is zero, the result issimilar to the general quantization when the weighting coefficient p isinfinite, the target is placed at the completely middle point. If theweighting coefficient p is too large, the target is largely separatedfrom the parameter S_(t)(i) of the current frame so that articulation isperceptually reduced. The test listening of decoded speech confirms thata good performance with 0.5<p<1.0 can be obtained.

Next, in the quantizing section 703, the quantization target obtained bythe target extracting section 702 is quantized so as to obtain a vectorcode and a decoded vector, and the obtained vector index and decodedvector are sent to the distortion calculator 704.

Note that a predictive vector quantization is used as a quantizationmethod in this embodiment. The following will explain the predictivevector quantization.

FIG. 11 shows a functional block of the predictive vector quantization.The predictive vector quantization is an algorithm in which theprediction is carried out using the vector (synthesized vector) obtainedby coding and decoding in the past and the predictive error vector isquantized.

A vector codebook 800, which stores a plurality of main samples(codevectors) of the prediction error vectors, is prepared in advance.This is prepared by an LBG algorithm (IEEE TRANSACTIONS ONCOMMUNICATIONS, VOL. COM-28, NO. 1, PP84-95, January 1980) based on alarge number of vectors obtained by analyzing a large amount of speechdata.

A vector 801 for quantization target is predicted by a predictionsection 802. The prediction is carried out by the post-decoded vectorsstored in a state storing section 803, and the obtained predictive errorvector is sent to a distance calculator 804. Here, as a form ofprediction, a first prediction order and a fixed coefficient are used.Then, an expression for calculating the predictive error vector in thecase of using the above prediction is shown by the following expression(11).Y(i)=X(i)−βD(i)  (11)

where Y(i): predictive error vector,

X(i): target vector,

β: prediction coefficient (scalar),

D(i): decoded vector of one previous frame, and

i: vector order.

In the above expression, it is general that the prediction coefficient βis a value of 0<β<1.

Next, the distance calculator 804 calculates the distance between thepredictive error vector obtained by the prediction section 802 and thecodevector stored in codebook 800. An expression for obtaining the abovedistance is shown by the following expression (12):

$\begin{matrix}{{En} = {\sum\limits_{i = 0}^{i}\left( {{T(i)} - {{Cn}(i)}} \right)^{2}}} & (12)\end{matrix}$

where En: distance from n-th codevector,

Y(i): predictive error vector,

Cn(i): codevector,

n: codevector number,

i: vector order, and

I: vector length.

Next, in a searching section 805, the distances for respectivecodevectors are compared, and the index of codevector which gives theshortest distance is output as a vector code 806.

In other words, the vector codebook 800 and the distance calculator 804are controlled so as to obtain the index of codevector which gives theshortest distance from all codevectors stored in the vector codebook800, and the obtained index is used as vector code 806.

Moreover, the vector is coded using the codevector obtained from thevector codebook 800 and the past-decoded vector stored in the statestoring section 803 based on the final coding, and the content of thestate storing section 803 is updated using the obtained synthesizedvector. Therefore, the decoded vector here is used in the predictionwhen a next quantization is performed.

The decoding of the example (first prediction order, fixed coefficient)in the above-mentioned prediction form is performed by the followingexpression (13):Z(i)=CN(1)+βD(1)  (13)

where Z(i): decoded vector (used as D(i) at a next coding time,

N: code for vector,

CN(i): codevector,

β: prediction coefficient (scalar),

D(i): decoded vector of one previous frame, and

i: vector order.

On the other hand, in a decoder, the codevector is obtained based on thecode of the transmitted vector so as to be decoded. In the decoder, thesame vector codebook and state storing section as those of the coder areprepared in advance. Then, the decoding is carried out by the samealgorithm as the decoding function of the searching section in theaforementioned coding algorithm. The above is the vector quantization,which is executed in the quantizing section 703.

Next, the distortion calculator 704 calculates a perceptual weightedcoding distortion from the decoded vector obtained by the quantizingsection 703, the input vector 701, and the decoded vector of theprevious frame stored in the decoded vector storing section 707. Anexpression for calculation is shown by the following expression (14):Ew=Σ

(V(i)−S _(t)(i))² +p{V(i)−(d(i)+S _(t+1)(i)/2}²

  (14)

where Ew: weighted coding distortion,

S_(t)(i), S_(t+1)(i): input vector,

t: time (frame number),

i: vector element number,

V(i): decoded vector,

p: weighting coefficient (fixed), and

d(i): decoded vector of previous frame.

In expression (14), the weighting coefficient p is the same as thecoefficient of the expression of the target used in the targetextracting section 702. Then, the value of the weighted codingdistortion, the encoded vector and the code of the vector are sent tothe comparator 705.

The comparator 705 sends the code of the vector sent from the distortioncalculator 704 to the transmission path 608, and further updates thecontent of the decoded vector storing section 707 using the vector sentfrom the distortion calculator 704.

According to the above-mentioned embodiment, in the target extractingsection 702, the target vector is corrected from S_(t)(i) to the vectorplaced at the position approaching to the middle point between D(i) andS_(t+1)(i) to same extent. This makes it possible to perform theweighted search so as not to arise perceptual degradation.

The above explained the case in which the present invention was appliedto the low bit rate speech coding technique used in such as a cellularphone. However, the present invention can be employed in not only thespeech coding but also the vector quantization for a parameter having arelatively good interpolation in a music coder and an image coder.

In general, the LPC coding executed by the LPC analyzing section in theabove-mentioned algorithm, conversion to parameters vector such as LSP(Line Spectram Pairs), which are easily coded, is commonly performed,and vector quantization (VQ) is carried out by Euclidean distance orweighted Euclidean distance.

Also, according to the above embodiment, the target extracting section702 sends the input vector 701 to the vector smoothing section 708 afterbeing subjected to the control of the comparator 705. Then, the targetextracting section 702 receives the input vector changed by the vectorsmoothing section 708, thereby re-extracting the target.

In this case, the comparator 705 compares the value of weighted codingdistortion sent from the distortion calculator 704 with a referencevalue prepared in the comparator. Processing is divided into two,depending on the comparison result.

If the comparison result is under the reference value, the comparator705 sends the index of the codevector sent from the distortioncalculator to the transmission path 608, and updates the content of thedecoded vector storing section 707 using the coded vector sent from thedistortion calculator 704. This update is carried out by rewriting thecontent of the decoded vector storing section 707 using the obtainedcoded vector. Then, processing moves to one for a next frame parametercoding.

While, if the comparison result is more than the reference value, thecomparator 705 controls the vector smoothing section 708 and adds achange to the input vector so that the target extracting section 702,the quantizing section 703 and distortion calculator 704 are functionedagain to perform coding again.

In the comparator 705, coding processing is repeated until thecomparison result reaches the value under reference value. However,there is a case in which the comparison result can not reach the valueunder the reference value even if coding processing is repeated manytimes. In case, the comparator 705 provides a counter in its interior,and the counter counts the number of times wherein the comparison resultis determined as being more than the reference value. When the number oftimes is more than a fixed number of times, the comparator 705 stops therepetition of coding and clears the comparison result and counter state,then adopts initial index.

The vector smoothing section 708 is subjected to the control of thecomparator 705 and changes parameter vector S_(t)(i) of the currentframe, which is one of input vectors, from the input vector obtained bythe target extracting section 702 and the decoded vector of the previousframe obtained decoded vector storing section 707 by the followingexpression (15), and tends the changed input vector to the targetextracting section 702.S_(t)(i)←(1−q)·S_(t)(i)+q(d(i)+S_(t+1)(i))/2  (15)

In the above expression, q is a smoothing coefficient, which shows thedegree of which the parameter vector of the current frame is updatedclose to a middle point between the decoded vector of the previous frameand the parameter vector of the future frame. The coding experimentshows that good performance can be obtained when the upper limitation ofthe number of repetition executed by the interior of the comparator 705is 5 to 8 under the condition of 0.2<q<0.4.

Although the above embodiment uses the predictive vector quantization inthe quantizing section 703, there is a high possibility that theweighted coding distortion obtained by the distortion calculator 704will become small. This is because the quantized target is updatedcloser to the decoded vector of the previous frame by smoothing.Therefore, by the repetition of decoding the previous frame due to thecontrol of the comparator 705, the possibility that the comparisonresult will become under the reference value is increased in thedistortion comparison of the comparator 705.

Also, in the decoder, there is prepared a decoding section correspondingto the quantizing section of the coder in advance such that decoding iscarried out based on the index of the codevector transmitted through thetransmission path.

Also, the embodiment of the present invention was applied toquantization (quantizing section is prediction VQ) of LSP parameterappearing CELP speech coder, and speech coding and decoding experimentwas performed. As a result, it was confirmed that not only thesubjective quality but also the objective value (S/N value) could beimproved. This is because there is an effect in which the codingdistortion of predictive VQ can be suppressed by coding repetitionprocessing having vector smoothing even when the spectrum drasticallychanges. Since the future prediction VQ was predicted from thepast-decoded vectors, there was a disadvantage in which the spectraldistortion of the portion where the spectrum drastically changes such asa speech onset contrarily increased. However, in the application of theembodiment of the present invention, since smoothing is carried outuntil the distortion lessens in the case where the distortion is large,the coding distortion becomes small though the target is more or lessseparated from the actual parameter vector. Whereby, there can beobtained an effect in which degradation caused when decoding the speechis totally reduced. Therefore, according to the embodiment of thepresent invention, not only the subjective quality but also theobjective value can be improved.

In the above-mentioned embodiment of the present invention, by thecharacteristics of the comparator and the vector smoothing section,control can be provided to the direction where the operator does notperceptually feel the direction of degradation in the case where thevector quantizing distortion is large. Also, in the case wherepredictive vector quantization is used in the quantizing section,smoothing and coding are repeated until the coding distortion lessens,thereby the objective value can be also improved.

The above explained the case in which the present invention was appliedto the low bit rate speech coding technique used in such as a cellularphone. However, the present invention can be employed in not only thespeech coding but also the vector quantization for a parameter having arelatively good interpolation in a music coder and an image coder.

Sixth Embodiment

Next, the following will explain the CELP speech coder according to thesixth embodiment. The configuration of this embodiment is the same asthat of the fifth embodiment excepting quantization algorithm of thequantizing section using a multi-stage predictive vector quantization asa quantizing method. In other words, the excitation vector generator ofthe first embodiment is used as a random codebook. Here, thequantization algorithm of the quantizing section will be specificallyexplained.

FIG. 12 shows the functional block of the quantizing section. In themulti-stage predictive vector quantization, the vector quantization ofthe target is carried out, thereafter the vector is decoded using acodebook with the index of the quantized target, a difference betweenthe coded vector. Then, the original target (hereinafter referred to ascoded distortion vector) is obtained, and the obtained coded distortionvector is further vector-quantized.

A vector codebook 899 in which a plurality of dominant samples(codevectors) of the predictive error vector are stored and a codebook900 are generated in advance. These codevectors are generated byapplying the same algorithm as that of the codevector generating methodof the typical “multi-vector quantization”. In other words, thesecodevectors are generally generated by an LBG algorithm IEEETRANSACTIONS ON COMMUNICATIONS, VOL. COM-28, NO. 1, PP84-95, January1980) based on a large number of vectors obtained by analyzing manyspeech data. Note that, a training date for designing codevectors 899 isa set of many target vectors, while a training date for designingcodebook 900 is a set of coded distortion vectors obtained when theabove-quantized targets are coded by the vector codebook 899.

First, a vector 901 of the target vector is predicted by a predictingsection 902. The prediction is carried out by the past-decoded vectorsstored in a state storing section 903, and the obtained predictive errorvector is sent to distance calculators 904 and 905.

According to the above embodiment, as a form of prediction, a fixedcoefficient is used for a first order prediction. Then, an expressionfor calculating the predictive error vector in the case of using theabove prediction is shown by the following expression (16).Y(i)=X(i)−βD(i)  (16)

where Y(i): predictive error vector,

-   -   X(i): target vector,    -   β: predictive coefficient (scalar),    -   D(i): decoded vector of one previous frame, and    -   i: vector order.

In the above expression, it is general that the predictive coefficient βis a value of 0<β<1.

Next, the distance calculator 904 calculates the distance between thepredictive error vector obtained by the prediction section 902 andcodevector A stored in the vector codebook 899. An expression forobtaining the above distance is shown by the following expression (17):

$\begin{matrix}{{En} = {\sum\limits_{i = 0}^{i}\left( {{X(i)} - {C\; 1{n(i)}}} \right)^{2}}} & (17)\end{matrix}$

where En: distance from n-th codevector A,

Y(i): predictive error vector,

Cln(i): codevector A,

n: index of codevector A,

i: vector order, and

I: vector length.

Then, in a searching section 906, the respective distances from thecodevector A are compared, and the index of the codevector A having theshortest distance is used as a code for codevector A. In other words,the vector codebook 899 and the distance calculator 904 are controlledso as to obtain the code of codevector A having the shortest distancefrom all codevectors stored in the codebook 899. Then, the obtained codeof codevector A is used as the index of codebook 899. After this, thecode for codevector A and decoded vector A obtained from the codebook899 with reference to the code for codevector A are sent to the distancecalculator 905. Also, the code for codevector A is sent to a searchingsection 906 through the transmission path.

The distance calculator 905 obtains a coded distortion vector from thepredictive error vector and the decoded vector A obtained from thesearching section 906. Also, the distance calculator 905 obtainsamplitude from an amplifier storing section 908 with reference to thecode for codevector A obtained from the searching section 906. Then, thedistance calculator 905 calculates a distance by multiplying the abovecoded distortion vector and codevector B stored in the vector codebook900 by the above amplitude, and sends the obtained distance to thesearching section 907. An expression for the above distance is shown asfollows:

$\begin{matrix}{{{{Z(i)} = {{Y(i)} - {C\; 1{N(i)}}}}{Em} = {\sum\limits_{i = 0}^{i}\left( {{Z(i)} - {{aNC}\; 2{m(i)}}} \right)^{2}}}\;} & (18)\end{matrix}$

where Z(i): decoded vector,

Y(i): predictive error vector,

C1N(i): decoded vector A,

Em: distance from m-th codevector B,

aN: amplitude corresponding to the code for codevector A,

C2m(i): codevector B,

m: index of codevector B,

i: vector order, and

I: vector length.

Then, in a searching section 907, the respective distances from thecodevector B are compared, and the index of the codevector B having theshortest distance is used as a code for codevector B. In other words,the codebook 900 and the distance calculator 905 are controlled so as toobtain the code of codevector B having the shortest distance from allcodevectors stored in the vector codebook 900. Then, the obtained codeof codevector B is used as the index of codebook 900. After this,codevector A and codevector B are added and used as a vector code 909.

Moreover, the searching section 907 carries out the decoding of thevector using decoded vectors A, B obtained from the vector codebooks 899and 900 based on the codes for codevector A and codevector B, amplitudeobtained from an amplifier storing section 908 and past decoded vectorsstored in the state storing section 903. The content of the statestoring section 903 is updated using the obtained decoded vector.(Therefore, the vector as decoded above is used in the prediction at anext coding time). The decoding in the prediction (a first predictionorder and a fixed coefficient) in this embodiment is performed by thefollowing expression (19):Z(i)=C1N(i)+aN·C2M(i)+βD(i)  (19)

where Z(i): decoded vector (used as D(i) at the next coding time),

N: code for codevector A,

M: code for codevector B,

C1N(i): decoded codevector A,

C2M(i): decoded codevector B,

aN: amplitude corresponding to the code for codevector A,

β: predictive coefficient (scalar),

D(i): decoded vector of one previous frame, and

i: vector order.

Also, although amplitude stored in the amplifier storing section 908 ispreset, the setting method is set forth below. The amplitude is set bycoding much speech data is coded, obtaining the sum of the codeddistortions of the following expression (20), and performing thetraining such that the obtained sum is minimized.

$\begin{matrix}{{EN} = {\sum{\sum\limits_{i = 0}^{i}\left( {{Y_{i}(i)} - {C\; 1{N(i)}} - {{aNC}\; 2{m_{t}(i)}}} \right)^{2}}}} & (20)\end{matrix}$

where EN: coded distortion when the code for codevector A is N,

N: code for codevector A,

t: time when the code for codevector A is

Y_(t)(i): predictive error vector at time t,

C1N(i) decoded codevector A,

aN: amplitude corresponding to the code for codevector A,

C2m_(t)(i): codevector B,

m_(t): the index of codevector B at time t,

i: vector order, and

I: vector length.

In other words, after coding, amplitude is reset such that the value,which has been obtained by differentiating the distortion of the aboveexpression (20) with respect to each amplitude, becomes zero, therebyperforming the training of amplitude. Then, by the repetition of codingand training, the suitable value of each amplitude is obtained.

On the other hand, the decoder performs the decoding by obtaining thecodevector based on the code of the vector transmitted. The decodercomprises the same vector codebooks (corresponding to codebooks A, B) asthose of the coder, the amplifier storing section, and the state storingsection. Then, the decoder carries out the decoding by the samealgorithm as the decoding function of the searching section(corresponding to the codevector B) in the aforementioned codingalgorithm.

Therefore, according to the above-mentioned embodiment, by thecharacteristics of the amplifier storing section and the distancecalculator, the codevector of the second stage is applied to that of thefirst stage with a relatively small amount of calculations, thereby thecoded distortion can be reduced.

The above explained the case in which the present invention was appliedto the low bit rate speed coding technique used in such as a cellularphone. However, the present invention can be employed in not only thespeech coding but also the vector quantization for a parameter having arelatively good interpolation in a music coder and an image coder.

Seventh Embodiment

Next, the following will explain the CELP speech coder according to thesixth embodiment. This embodiment shows an example of a coder, which iscapable of reducing the number of calculation steps for vectorquantization processing for ACELP type random codebook.

FIG. 13 shows the functional block of the CELP speech coder according tothis embodiment. In this CELP speech coder, a filter coefficientanalysis section 1002 provides the linear predictive analysis to inputspeech signal 1001 so as to obtain coefficients of the synthesis filter,and outputs the obtained coefficients of the synthesis filter to afilter coefficient quantization section 1003. The filter coefficientquantization section 1003 quantizes the input coefficients of thesynthesis filter and outputs the quantized coefficients to a synthesisfilter 1004.

The synthesis filter 1004 is constituted by the filter coefficientssupplied from the filter coefficient quantization section 1003. Thesynthesis filter 1004 is excited by an excitation signal 1011. Theexcitation signal 1011 is obtained by adding a signal, which is obtainedby multiplying an adaptive codevector 1006, i.e., an output from anadaptive codebook 1005, by an adaptive codebook gain 1007, and a signal,which is obtained by multiplying a random codevector 1009, i.e., anoutput from a random codebook 1008, by a random codebook gain 1010.

Here, the adaptive codebook 1005 is one that stores a plurality ofadaptive codevectors, which extracts the past excitation signal forexciting the synthesis filter every pitch cycle. The random codebook1008 is one that stores a plurality of random codevectors. The randomcodebook 1008 can use the excitation vector generator of theaforementioned first embodiment.

A distortion calculator 1013 calculates a distortion between a syntheticspeech signal 1012, i.e., the output of the synthesis filter 1004excited by the excitation signal 1011, and the input speech signal 1001so as to carry out code search processing. The code search processing isone that specifies the index of the adaptive codevector 1006 forminimizing the distortion calculated by the distortion calculator 1013and that of the random codevector 1009. At the same time, the codesearch processing is one that calculates optimum values of the adaptivecodebook gain 1007 and the random codebook gain 1010 by which therespective output vectors are multiplied.

A code output section 1014 outputs the quantized value of the filtercoefficients obtainable from the filter coefficient quantization section1003, the index of the adaptive codevector 1006 selected by thedistortion calculator 1013 and that of the random codevector 1009, andthe quantized values of adaptive codebook gain 1007 and random codebookgain 1010 by which the respective output vectors are multiplied. Theoutputs from the code output section 1014 are transmitted or stored.

In the code search processing in the distortion calculator 1013, anadaptive codebook component of the excitation signal is first searched,and a random codebook component of the excitation signal is nextsearched.

The above search of the random codebook component uses an orthogonalsearch set forth below.

The orthogonal search specifies a random codevector c, which maximizes asearch reference value Eort (=Nort/Dort) of expression (21).

$\begin{matrix}{{{Eort}\left( {= \frac{Nort}{Dort}} \right)} = \frac{\left\lbrack {\left\{ {{\left( {P^{t}H^{t}{Hc}} \right)x} - {\left( {x^{t}{Hp}} \right){Hp}}} \right\}{Hc}} \right\rbrack^{2}}{{\left( {c^{t}H^{t}{Hc}} \right)\left( {p^{t}H^{t}{Hp}} \right)} - \left( {p^{t}H^{t}{Hc}} \right)^{2}}} & (21)\end{matrix}$

where Nort: numerator term for Eort,

Dort: denominator term for Eort,

p: adaptive codevector already specified,

H: synthesis filter coefficient matrix,

H^(t): transposed matrix for H,

x: target signal (one that is obtained by

differentiating a zero input response of the synthesis filter from theinput speech signal), and

c: random codevector.

The orthogonal search is a search method for orthogonalizing randomcodevectors serving as candidates with respect to the adaptivecodevector specified in advance so as to specify index that minimizesthe distortion from the plurality of orthogonalized random codevectors.The orthogonal search has the characteristics in which a accuracy forthe random codebook search can be improved as compared with anon-orthogonal search and the quality of the synthetic speech can beimproved.

In the ACELP type speech coder, the random codevector is constituted bya few signed pulses. By use of the above characteristic, the numeratorterm (Nort) of the search reference value shown in expression (21) isdeformed to the following expression (22) so as to reduce the number ofcalculation steps on the numerator term.Nort={a ₀Ψ(I ₀)+a ₁Ψ(I ₁)+ . . . α_(n−1)Ψ(I _(n−1))}²  (22)

where a_(i): sign of i-th pulse (+1/−1),

I_(i): position of i-th pulse,

n: number of pulses, and

ψ: {(p^(t)H^(t)Hp)x−(x^(t)Hp)Hp}^(t)H.

If the value of ψ expression (22) is calculated in advance as apre-processing and expanded to an array, (n−1) elements out of array ψare added or substituted, and the resultant is squared, whereby thenumerator term of expression (21) can be calculated.

Next, the following will specifically explain the distortion calculator1013, which is capable of reducing the number of calculation steps onthe denominator term.

FIG. 14 shows the functional block of the distortion calculator 1013.The speech coder of this embodiment has the configuration in which theadaptive codevector 1006 and the random codevector 1009 in theconfiguration of FIG. 13 are input to the distortion calculator 1013.

In FIG. 14, the following three processing is carried out aspre-processing at the time of calculating the distortion for each randomcodevector.

(1) Calculation of first matrix (N): power of synthesized adaptivecodevector (p^(t)H^(t)Hp) and auto-correlation matrix of synthesisfilter's coefficients (H^(t)H) are computed, and each element of theauto-correlation matrix are multiplied by the above power so as tocalculate matrix N (=(p^(t)H^(t)Hp)H^(t)H).

(2) Calculate second matrix (M): time reverse synthesis is performed tothe synthesized adaptive codevector for producing (p^(t)H^(t)H), andouter products of the above resultant signal (p^(t)H^(t)H) is calculatedfor producing matrix M.

(3) Generate third matrix (L): matrix M calculated in item (2) issubtracted from matrix N calculated in item (1) so as to generate matrixL.

Also, the denominator term (Dort) of expression (21) can be expanded asin the following expressions (23).

$\begin{matrix}\begin{matrix}{{Dort} = {{\left( {c^{t}H^{t}{Hc}} \right)\left( {p^{t}H^{t}{Hp}} \right)} - \left( {p^{t}H^{t}{Hc}} \right)^{2}}} \\{= {{c^{t}{Nc}} - \left( {r^{t}c} \right)^{2}}} \\{= {{c^{t}{Nc}} - {\left( {r^{t}c} \right)^{t}\left( {r^{t}c} \right)}}} \\{= {{c^{t}{Nc}} - \left( {c^{t}{rr}^{r}c} \right)}} \\{= {{c^{t}{Nc}} - \left( {c^{t}M\; c} \right)}} \\{= {{c^{t}\left( {N - M} \right)}c}} \\{= {c^{t}{Lc}}}\end{matrix} & (23)\end{matrix}$

where N: (p^(t)H^(t)Hp)H^(t)H above pre-processing (1),

r^(t:) p^(t)H^(t)H the above pre-processing (2),

M: rr^(t) the above pre-processing (2),

L: N−M the above pre-processing (3), and

C: random codevector.

Thereby, the calculation of the denominator term (Dort) at the time ofthe calculation of the search reference value (Eort) of expression (21)is replaced with expression (23), thereby making it possible to specifythe random codebook component with the smaller amount of calculation.

The calculation of the denominator term is carried out using the matrixL obtained in the above pre-processing and the random codevector 1009.

Here, for simplifying the explanation, the calculation method of thedenominator term will be explained on the basis of expression (23) in acase where a sampling frequency of the input speech signal is 8000 Hz,the random codebook has Algebraic structure, and its codevectors areconstructed by five signed unit pulses per 10 ms frame.

The five signed unit pulses constituting the random codevector havepulses each selected from the candidate positions defined for each ofzero to fourth groups shown in Table 2, then random codevector c can bedescribed by the following expression (24).C=a ₀δ(k−1₀)+a ₁δ(k−1₁)+ . . . a ₄δ(k−1₄)  (24)

(k=0, 1, . . . 79)

where a_(i): sign (+1/−1) of pulse belonging to group i, and

I_(i): position of pulse belonging to group i.

TABLE 2 Group Number Code Pulse Candidate Position 0 ±1 0, 10, 20, 30, .. . , 60, 70 1 ±1 2, 12, 22, 32, . . . , 62, 72 2 ±1 2, 16, 26, 36, . .. , 66, 76 3 ±1 4, 14, 24, 34, . . . , 64, 74 4 ±1 8, 18, 28, 38, . . ., 68, 78

At this time, the denominator term (Dort) shown by expression (23) canbe obtained by the following expression (25):

$\begin{matrix}{{Dort} = {\sum\limits_{i = 0}^{4}{\sum\limits_{j = 0}^{4}{a_{i}a_{j}{L\left( {l_{i},l_{j}} \right)}}}}} & (25)\end{matrix}$

where a_(i): sign (+1/−1) of pulse belonging to group i,

I_(i): position of pulse belonging to group i, and

L(I_(i), l_(j)): element (I_(i) row and l_(j) column) of matrix L.

As explained above, in the case where the ACELP type random codebook isused, the numerator term (Nort) of the code search reference value ofexpression (21) can be calculated by expression (22), while thedenominator term (Dort) can be calculated by expression (25). Therefore,in the use of the ACELP type random codebook, the numerator term iscalculated by expression (22) and the denominator term is calculated byexpression (25), respectively, instead of directly calculating of thereference value of expression (21). This makes it possible to greatlyreduce the number of calculation steps for vector quantizationprocessing of random excitations.

The aforementioned embodiments explained the random code search with nopre-selection. However, the same effect as mentioned above can beobtained if the present invention is applied to a case in whichpre-selection based on the values of expression (22) is employed, thevalues of expression (21) are calculated for only pre-selected randomcodevectors with expression (22) and expression (25), then finallyselecting one random codevector, which maximize the above searchreference value.

1. An orthogonal search method for use in a speech coding, bycalculating a search reference value, the orthogonal search methodcomprising: generating an adaptive codevector representing a pitchcomponent; generating a random codevector representing a randomcomponent; generating a synthetic speech signal by a synthesis filterbeing excited by the adaptive codevector and the random codevector;calculating a distortion between the input speech signal and thesynthetic speech signal; and selecting one random codevector thatminimizes the distortion, wherein the search reference value iscalculated by: computing the power, α=p^(t)H^(t)Hp, of a signal, Hp,obtained by synthesis in the synthesis filter using the adaptivecodevector; computing an auto-correlation matrix, A=H^(t)H, of filtercoefficients of the synthesis filter; calculating a matrix, M, byproviding a time reverse synthesis, r^(t)=p^(t)H^(t)H, to the signal,Hp, obtained by syntheses in the synthesis filter using the adaptivecodevector and by taking an outer product, M=rr^(t), of the resultantsignal by the time reverse synthesis; calculating a value,1/D=1/{c^(t)(αA−M)c}, by using the power α, the auto-correlation matrixA, the matrix M and the random codevector c; and calculating the searchreference value using the value 1/D, where p is the adaptive codevector,c is the random codevector, H is the synthesis filter coefficientmatrix, and t denotes transpose.
 2. A speech coder using an orthogonalsearch, by calculating a search reference value, the speech codercomprising: an adaptive codebook that generates an adaptive codevectorrepresenting a pitch component; a random codebook that generates arandom codevector representing a random component; a synthesis filterthat generates a synthetic speech signal by the synthesis filter beingexcited by the adaptive codevector and the random codevector; and adistortion calculator that calculates a distortion between the inputspeech signal and the synthetic speech signal, and selects one randomcodevector that minimizes the distortion, wherein the distortioncalculator that calculates the search reference value comprises: asystem that computes the power, α=p^(t)H^(t)Hp, of a signal, Hp,obtained by synthesis in the synthesis filter using the adaptivecodevector, and computes an auto-correlation matrix, A=H^(t)H, of filtercoefficients of the synthesis filter; a system that calculates a matrix,M, by providing a time reverse synthesis, r^(t)=p^(t)H^(t)H, to thesignal, Hp, obtained by syntheses in the synthesis filter using theadaptive codevector and taking an outer product, M=rr^(t), of theresultant signal by the time reverse synthesis; and a system thatcalculates a value, 1/D=1/{c^(t)(αA−M)c}, by using the power α, theauto-correlation matrix A, the matrix M and the random codevector c;wherein the distortion calculator calculates the search reference valueusing the value 1/D, where p is the adaptive codevector, c is the randomcodevector, H is the synthesis filter coefficient matrix, and t denotestranspose.